{{{ template "common/header" . }}}
<div class="ui grid">
    {{{template "task/menu" .}}}
    <div class="twelve wide column">
        <div class="pageHeader">
            <div class="segment">
                <h3 class="ui dividing header">
                    <a href="/task/create">
                        <i class="large add icon"></i>
                        <div class="content">
                           添加任务
                        </div>
                    </a>
                </h3>
            </div>
        </div>
        <form class="ui form">
            <div class="six fields search">
                <div class="one wide field">
                    <input type="text" placeholder="任务ID" name="id" value="{{{if gt .Params.Id 0}}}{{{.Params.Id}}}{{{end}}}">
                </div>
                <div class="field">
                    <input type="text" placeholder="任务名称" name="name" value="{{{.Params.Name}}}">
                </div>
                <div class="field">
                    <select name="host_id" id="hostId">
                        <option value="">选择节点</option>
                        {{{range $i, $v := .Hosts}}}
                        <option value="{{{.Id}}}" {{{if eq $.Params.HostId .Id }}} selected {{{end}}} >{{{.Alias}}}-{{{.Name}}}</option>
                        {{{end}}}
                    </select>
                </div>
                <div class="field">
                    <select name="protocol" id="protocol">
                        <option value="0">执行方式</option>
                        <option value="2"  {{{if eq .Params.Protocol 2}}}selected{{{end}}} data-match="host_id" data-validate-type="selectProtocol">SHELL</option>
                        <option value="1"  {{{if eq .Params.Protocol 1}}}selected{{{end}}}>HTTP</option>
                    </select>
                </div>
                <div class="field">
                    <select name="status">
                        <option value="0">状态</option>
                        <option value="1" {{{if eq .Params.Status 0}}}selected{{{end}}} >停止</option>
                        <option value="2" {{{if eq .Params.Status 1}}}selected{{{end}}}>激活</option>
                    </select>
                </div>
                <div class="field">
                    <button class="ui linkedin submit button">搜索</button>
                </div>
            </div>
        </form>
        <table class="ui pink table task-list">
            <thead>
            <tr>
                <th>任务ID</th>
                <th>任务名称</th>
                <th>任务类型</th>
                <th>cron表达式</th>
                <th>执行方式</th>
                <th>超时时间</th>
                <th>重试次数</th>
                <th>单实例运行</th>
                <th>任务节点</th>
                <th>状态</th>
                <th>操作</th>
            </tr>
            </thead>
            <tbody>
                {{{range $i, $v := .Tasks}}}
                    <tr>
                        <td>{{{.Id}}}</td>
                        <td>{{{.Name}}}</td>
                        <td>{{{if eq .Level 1}}}主任务{{{else}}}子任务{{{end}}}</td>
                        <td>{{{.Spec}}}</td>
                        <td>{{{if eq .Protocol 1}}} HTTP {{{else if eq .Protocol 2}}} SHELL {{{end}}}</td>
                        <td>{{{if eq .Timeout -1}}}后台运行{{{else if gt .Timeout 0}}}{{{.Timeout}}}秒{{{else}}}不限制{{{end}}}</td>
                        <td>{{{.RetryTimes}}}</td>
                        <td>{{{if gt .Multi 0}}}否{{{else}}}是{{{end}}}</td>
                        <td>
                            {{{range $k, $h := .Hosts}}}
                                {{{$h.Alias}}}<br>
                            {{{end}}}
                        </td>
                        <td>
                            {{{if eq .Level 1}}}
                                {{{if eq .Status 1}}}<span style="color: green;">激活</span>{{{else}}}<span style="color: red;">停止<span>{{{end}}}
                            {{{end}}}
                        </td>
                        <td>
                            <div class="ui buttons operation">
                                <a class="ui purple  button" href="/task/edit/{{{.Id}}}">编辑</a>
                                {{{if eq .Level 1}}}
                                    {{{if eq .Status 1}}}
                                    <button class="ui primary button" @click="changeStatus({{{.Id}}},{{{.Status}}})">停止</button>
                                    {{{else}}}
                                    <button class="ui blue button" @click="changeStatus({{{.Id}}},{{{.Status}}})">激活 </button>
                                    {{{end}}}
                                {{{end}}}
                                <button class="ui positive button" @click="remove({{{.Id}}})">删除</button> <br>
                                <button class="ui twitter button" @click="run({{{.Id}}})">手动运行</button>
                                <a class="ui instagram button" href="/task/log?task_id={{{.Id}}}">查看日志</a>
                            </div>
                        </td>
                    </tr>
            {{{end}}}
            </tbody>
        </table>
    {{{ template "common/pagination" .}}}
    </div>
</div>

<script type="text/javascript">
    $('.ui.checkbox').checkbox();

    var vue = new Vue(
            {
                el: '.task-list',
                methods: {
                    changeStatus: function (id ,status) {
                        var url = '';
                        if (status) {
                            url = '/task/disable';
                        } else {
                            url = '/task/enable';
                        }
                        url += '/' + id;
                        util.post(url,{}, function() {
                            location.reload();
                        });
                    },
                    remove: function(id) {
                        util.removeConfirm('/task/remove/' + id);
                    },
                    run: function(id) {
                        util.get("/task/run/" + id, function(code, message) {
                            swal('操作成功', message, 'success');
                        })
                    }
                }
            }
    );




</script>

{{{ template "common/footer" . }}}
